#!/bin/bash
# FunASR 快速启动脚本

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

echo -e "${BLUE}============================================"
echo -e "🎵 FunASR 音频识别快速启动"
echo -e "============================================${NC}"

# 检查是否在项目根目录
if [ ! -f "CLAUDE.md" ] || [ ! -d "venv" ]; then
    echo -e "${RED}❌ 请在项目根目录运行此脚本${NC}"
    exit 1
fi

# 检查参数
if [ $# -eq 0 ]; then
    echo -e "${YELLOW}使用方法: $0 <音频/视频文件路径> [热词]${NC}"
    echo ""
    echo -e "示例:"
    echo -e "  $0 \"data/视频文件.mp4\""
    echo -e "  $0 \"data/技术讲座.mp4\" \"深度学习,神经网络\""
    echo ""
    echo -e "${BLUE}可用文件:${NC}"
    ls -la data/ | grep -E "\.(mp4|wav|mp3|m4a|flac)$" 2>/dev/null || echo "  未找到音频/视频文件"
    exit 1
fi

INPUT_FILE="$1"
HOTWORD="$2"

# 检查输入文件
if [ ! -f "$INPUT_FILE" ]; then
    echo -e "${RED}❌ 文件不存在: $INPUT_FILE${NC}"
    exit 1
fi

echo -e "${GREEN}📥 输入文件: $INPUT_FILE${NC}"
if [ -n "$HOTWORD" ]; then
    echo -e "${GREEN}🎯 热词: $HOTWORD${NC}"
fi

# 激活虚拟环境
echo -e "${BLUE}🔄 激活虚拟环境...${NC}"
source venv/bin/activate

# 设置缓存目录
export FUNASR_CACHE_DIR=/Users/demon/work/llm/video-asr/.cache

# 检查FunASR是否可用
python -c "from funasr import AutoModel" 2>/dev/null
if [ $? -ne 0 ]; then
    echo -e "${RED}❌ FunASR 未正确安装${NC}"
    exit 1
fi

echo -e "${GREEN}✅ FunASR 环境就绪${NC}"

# 运行转录
echo -e "${BLUE}🎵 开始音频转录...${NC}"
echo ""

if [ -n "$HOTWORD" ]; then
    python scripts/transcribe_audio.py "$INPUT_FILE" --hotword "$HOTWORD"
else
    python scripts/transcribe_audio.py "$INPUT_FILE"
fi

# 检查执行结果
if [ $? -eq 0 ]; then
    echo ""
    echo -e "${GREEN}🎉 转录完成！结果保存在 output/ 目录${NC}"
    echo -e "${BLUE}📁 输出文件:${NC}"
    ls -la output/ | grep -E "\.(json|srt|txt)$" || echo "  未找到输出文件"
else
    echo -e "${RED}❌ 转录失败${NC}"
    exit 1
fi